4 צעדים פשוטים לשליחת אימיילים מהשרת הביתי / wamp
עם עזרה קטנה של gmail :)
שליחת אימייל דרך PHP מ-wamp / שרת לוקאלי
שלב 1: הורדת fake sendmail
קישור להורדה.
בתוך הארכיון מחקים לנו 8 קבצים אותם נעתיק לתיקיה C:\wamp\bin\sendmail\
שימו לב, התיקיה sendmail לא קיימת - יש ליצור אותה.
שלב 2: הגדרת PHP
פתחו את קובץ ה-php.ini שלכם ומצאו בו את השורה [mail function]
אחריה תהיה רשימת הגדרות של שליחת אימיילים. יש להוסיף נקודה פסיק לפני כל ההגדרות פרט להגדרה של sendmail_path שבה יש להוריד את הנקודה פסיק.
בתוכן של sendmail_path יש לכתוב "C:\wamp\bin\sendmail.exe -t"
[mail function]
;SMTP = localhost
;smtp_port = 25
;sendmail_from = test@localhost
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t"
;mail.force_extra_parameters =
;mail.log =
;SMTP = localhost
;smtp_port = 25
;sendmail_from = test@localhost
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t"
;mail.force_extra_parameters =
;mail.log =
שלב 3: פתיחת חשבון gmail
טופס פתיחת משתמש.
תזכרו את שם המשתמש והסיסמה שאיתה נרשמתם.
שלב 4: הגדרת sendmail
השלב האחרון. פתחו את קובץ sendmail.ini שנמצא בתיקיה C:\wamp\bin\sendmail
שנו את ההגדרות באופן הבא:
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourGMAILaccount@gmail.com
auth_password=qwerty
pop3_server=
pop3_username=
pop3_password=
force_sender=me@localhost
force_recipient=
hostname=
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourGMAILaccount@gmail.com
auth_password=qwerty
pop3_server=
pop3_username=
pop3_password=
force_sender=me@localhost
force_recipient=
hostname=
שימו לב להעתיק את ההגדרות של השרת, הפורט וה-TLS בקפדנות.
זהו זה, נשאר רק להפעיל מחדש את apache
בדיקה
לאחר הפעלה מחדש של apache ניצור קובץ עם התוכן:
הציבו את כתובת האימייל האמיתית שלכם וודאו שאתם מקבלים את המכתב.
מה עשינו פה בעצם
שליחת אימיילים מתבצעת באמצעות תוכנה מיוחדת שנקראת שרת smtp.
שרת כזה דורש ip משלו, רישומי דומיין והגדרות מסובכות אחרות שלא נתעסק בהם כאן. אנחנו נשתמש בשרת שליחת האימיילים של גוגל שזמין בכתובת gmail.smtp.com
php לא יודעת להתחבר, להזדהות ולשלוח אימיילים בעצמה.
אבל היא יודעת להפעיל שרת smtp שמותקן על אותו מחשב.
כיוון שהשרת של gmail לא נמצא באותו מחשב, יהיה צורך בתוכנה מגשרת. שאותה תפעיל PHP והיא תבצע את ההזדהות והשליחה מול השרת של גוגל.
תגובות לכתבה:
תודה אלכס, שימושי. :)
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in G:\Rafael\wamp\www\mail.php on line 2
תוודא שוב שעשית את שלב 2 כמו שצריך.
יכול להיות שערכת את הקובץ php.ini הלא נכון או שלא שמת נקודה-פסיק לפני כל ההגדרות חוץ מ sendmail_path
תודה רבה :)
יש תוכנה שיוצרת שרת SMTP על המחשב ואז בלי להגדיר שום דבר בוואמפ זה מציג לך מייליםם ששלחת מהPHP. רק שהשם ברח לי מהראש...
אתה מתכוון לסוג של sendmail stub שבמקום באמת לשלוח את האימיילים פשוט שומר אותם לקובץ בתיקיה מסוימת ואתה יכול לצפות בהם?
לא יודע , הוא לא שולח לי את המייל , ועשיתי אותו הדבר כמו בהגדרות (פשוט עשיתי העתק הדבק כאילו)..
אם יש בעיות עם שליחת המייל - בתיקיה C:\wamp\bin\sendmail יווצר קובץ debug.log או error.log שיכיל מידע והודעת שגיאה על הסיבה למה המייל לא נשלח.
אנה פנו לפורום לקבלת עזרה עם נוצרים לכם הקבצים האלה והמייל לא נשלח.
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\ex.php on line 2
ועקבתי אחרי כל ההגדרות
תוודא שערכת את ה-php.ini הנכון. אתה השני שזה קורא לו. אני יבדוק היום שוב את הנושא ואחזור עם תשובה בערב.
מצאתי שגיאה אחת
אבל תיקנתי אותה והשגיאה נמשכת
השגיאה היא פה:
"C:\wamp\bin\sendmail.exe -t"
זה אמור היות
"C:\wamp\bin\sendmail\sendmail.exe -t"
תודה רבה...באמת היה חסר לי
אני לא מצליח אני ניסיתי כבר כ 5 פעמים
אתה מקבל שגיאות ?
אני עדיין מקבל את השגיאה הזאת
The requested URL /mailer.php was not found on this server
לא יודע למה,הוא לא מוצא את הקובץ על השרת (wamp)
אין לזה ממש קשר לכתבה בכלל. תוודא שהנתיב שאתה גולש אליו הוא זה, שבו ממוקם הקוד של הסקריפט שלך.
מה שהראת פה נותן לשלוח מיילים מ WAMP נכון, אבל לא fakemail משום שהמייל נשלח מהחשבון GMAIL שהכנסת.
צודק לגמרי, אני יעדכן את זה.
ניסיתי כבר את הכל, ושום דבר לא עוזר. כל הזמן אני מקבל שגיאה בקובץ error.log
SSL is not available on this server.
בדקתי עשר פעמים שלא טעיתי בהקלדה וכדומה.
מה יכול להיות?
לא ברור באיזה סרבר מדובר. בשלך או בזה של ה smtp
כנראה שצריך להוריד את הנקודה פסיק לפני php_openssl.dll בקובץ php.ini
בכלל לא היה רשום php_openssl.dll בתוך php.ini
בדקתי, שהקובץ הזה קיים. ואז הוספתי extension=php_openssl.dll בתוך php.ini
עצרתי את אפאצ' והפעלתי שוב.
ועדיין שום דבר לא עוזר. עדיין אני מקבל אותה השגיאה.
אולי קיים איזה שרות דוא"ל חינמי בלי ssl ?
זהו הסתדרתי!!!
בהתחלה, הקבצים של sendmail, לא לקחתי מכאן, אלא מאתר אחר, ששם גם כתבו שזה מתאים לגוגל ול-ssl
עכשיו החלפתי את הקבצים במה שממוקם באתר כאן, וזה עובד. נראה שהיה חסר שורה: smtp_ssl=auto (חוץ מזה אני לא רואה הבדלים).
בקיצור, זה עבוד, ואין לכם מושג כמה שאני שמח, כי כבר הלכו לי על זה שעות רבות.
תודה רבה!
זה עדיין לא שולח לי מייל עשיתי ככה:
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username=[email protected]
auth_password=password of gmail
pop3_server=
pop3_username=
pop3_password=
force_sender=me@localhost
force_recipient=
hostname=
מה עוד להוסיף ??
ומזה הגדרות של השרת, הפורט וה-TLS
תודה על העזרה!!!!
עקבתי אחרי ההוראות ויישמתי אותם אחת לאחת
לא קיבלתי שום הודעת שגיאה גם לא נפתח לי קובץ לוג כלשהו
אולם כלום לא נשלח
איך אפשר לודא שנשלח משהו?
להיכנס לחשחבון האימייל ולפתוח את תיקיית ה"נשלחו"
או פשוט לשלוח משהו לכתובת שהיא שלך.
למרות שהבנתי שלאנשים מסוימים היו בעיות עם הצעדים האלה.
צריך לוודא שזה אקטואלי גם לגרסאות הנוכחיות.
מישהו יודע אם זה עובד עכשיו???